#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPainter>
#include <QGraphicsOpacityEffect>
#include <QGraphicsDropShadowEffect>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //设置样式
   // ui->pushButton->setStyleSheet("background:blue");    //设置按钮背景颜色
    //ui->pushButton->setStyleSheet("color:red");         //设置前景颜色，即字体颜色;与此同时会覆盖背景的颜色

    //想兼顾同时拥有背景颜色
    //setStyleSheet("QPushButton{background:yellow;color:black}");

    //ui->horizontalSlider->setStyleSheet("background:yellow");
   // setStyleSheet("QSlider{background:yellow}");

    //设置窗体透明属性  0~1，0表完全透明
   // setWindowOpacity(0.5);      //窗体和部件整体都会透明

    //部件不透明，窗体背景透明，窗体需配合无边框属性
    setWindowFlags(Qt::FramelessWindowHint);
    setAttribute(Qt::WA_TranslucentBackground);

    //部件设置透明
    QGraphicsOpacityEffect *opacityEffect=new QGraphicsOpacityEffect;
    opacityEffect->setOpacity(0.1);
    ui->label->setGraphicsEffect(opacityEffect);
    ui->pushButton->setGraphicsEffect(opacityEffect);    //不能为不同控件setGraphicsEffect同一对象
    //原因是如果将effect安装在其他项目上，则setGraphicsEffect（）将从项目中移除该效果并将其安装在该项目上。
    ui->pushButton_2->setGraphicsEffect(opacityEffect);

    //阴影效果
    QGraphicsDropShadowEffect *shadowEffect=new QGraphicsDropShadowEffect;
    //阴影色，透明度
    shadowEffect->setColor(QColor(100,100,100));
    shadowEffect->setBlurRadius(20);     //阴影模半径
    shadowEffect->setOffset(20);        //阴影偏移值
    ui->pushButton->setGraphicsEffect(shadowEffect);





}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.fillRect(rect(),QColor(255,100,100,200));    //最后一个参数表示透明度

}
